package Funcionario;

import java.util.List;
import Util.Conexao;
import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

public class FuncionarioDao {

	Conexao cx = new Conexao();
	
	public void AddFuncionario (Funcionario fun)
	{
		cx.OpenConection();
		cx.getSessao().save(fun);
		cx.CloseConection();
	}
	public void RemoveFuncionario (Funcionario fun)
	{
		cx.OpenConection();
		cx.getSessao().delete(fun);
		cx.CloseConection();
	}
	public void UpdateFuncionario (Funcionario fun)
	{
		cx.OpenConection();
		cx.getSessao().update(fun);
		cx.CloseConection();
	}
	public List <Funcionario> ListarFuncionario ()
	{
		Criteria listFun = cx.getTransacao().createCriteria(Funcionario.class);
		listFun.addOrder(Order.asc("nomePessoa"));
		return listFun.list();
	}
	public List <Funcionario> ListarFuncionarioDSC (String fun)
	{
		Criteria listFun = cx.getTransacao().createCriteria(Funcionario.class);
		listFun.add(Restrictions.like("nomePessoa", "%" +fun +"%"));
		listFun.addOrder(Order.asc("nomePessoa"));
		return listFun.list();
	}
	public Funcionario ListarFuncionarioCOD (int cod)
	{
		Criteria listFun = cx.getTransacao().createCriteria(Funcionario.class);
		listFun.add(Restrictions.eq("codPessoa", cod));
		return (Funcionario) listFun.uniqueResult();
	}
	public Funcionario ListarFuncionarioCPF (int CPF)
	{
		Criteria listFun = cx.getTransacao().createCriteria(Funcionario.class);
		listFun.add(Restrictions.eq("CPF", CPF));
		return (Funcionario) listFun.uniqueResult();
	}
}
